package com.wang.jmonkey.modules.system.api;

import com.wang.jmonkey.common.model.enums.BooleanEnum;
import com.wang.jmonkey.common.model.vo.UserVo;
import com.wang.jmonkey.common.result.HttpResult;
import com.wang.jmonkey.common.utils.UserUtil;
import com.wang.jmonkey.modules.system.model.dto.SystemModuleResourceDto;
import com.wang.jmonkey.modules.system.model.dto.SystemResourceTreeDto;
import com.wang.jmonkey.modules.system.model.entity.SystemResourceEntity;
import com.wang.jmonkey.modules.system.model.enums.SystemResourceTypeEnum;
import com.wang.jmonkey.modules.system.service.SystemResourceService;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 系统资源信息表(SystemResource)表控制层
 *
 * @author HeJiawang
 * @since 2021-05-21 21:45:37
 */
@RestController
@RequestMapping("/resource")
public class SystemResourceApi {

    /**
     * 服务对象
     */
    @Autowired
    private SystemResourceService service;

    /**
     * 获取菜单资源树，包括系统模块信息、菜单信息
     * @return 资源树
     */
    @GetMapping("/menuTree")
    public HttpResult<List<SystemResourceTreeDto>> menuTree() {
        return new HttpResult<>(service.tree(SystemResourceTypeEnum.Menu));
    }

    /**
     * 获取按钮资源树，包括系统模块信息，菜单信息，按钮嘻嘻
     * @return 资源树
     */
    @GetMapping("/buttonTree")
    public HttpResult<List<SystemResourceTreeDto>> buttonTree() {
        return new HttpResult<>(service.tree(SystemResourceTypeEnum.Button));
    }

    /**
     * 用户登陆后，获取用户资源信息
     * @return 资源信息
     */
    @GetMapping("/list")
    public HttpResult<List<SystemModuleResourceDto>> list() {
        return new HttpResult<>(
                service.list(
                        UserUtil.getUser().getIsAdmin().compareTo(BooleanEnum.YES) == 0 ? null : UserUtil.getUser().getId()
                )
        );
    }

}
